package com.approval.entity;

import lombok.Data;

import java.util.Date;

/**
 * 审批流程实体
 */
@Data
public class ApprovalProcess {
    
    private Long id;
    
    /**
     * 流程名称
     */
    private String processName;
    
    /**
     * 流程Key
     */
    private String processKey;
    
    /**
     * 流程分类
     */
    private String category;
    
    /**
     * 流程定义ID
     */
    private String processDefinitionId;
    
    /**
     * 流程XML
     */
    private String processXml;
    
    /**
     * 表单配置
     */
    private String formConfig;
    
    /**
     * 流程配置
     */
    private String processConfig;
    
    /**
     * 流程描述
     */
    private String description;
    
    /**
     * 流程图标
     */
    private String icon;
    
    /**
     * 状态（1-启用，0-禁用）
     */
    private Integer status = 1;
    
    /**
     * 创建人姓名
     */
    private String creatorName;
    
    /**
     * 创建时间
     */
    private Date createTime;
    
    /**
     * 更新时间
     */
    private Date updateTime;
    
    /**
     * 流程版本号
     */
    private Integer version = 1;
    
    /**
     * 是否为新版本（用于区分正在运行的实例使用哪个版本）
     */
    private Boolean isNewVersion = false;
    
    // Getter and Setter methods
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getProcessName() {
        return processName;
    }

    public void setProcessName(String processName) {
        this.processName = processName;
    }

    public String getProcessKey() {
        return processKey;
    }

    public void setProcessKey(String processKey) {
        this.processKey = processKey;
    }

    public String getCategory() {
        return category;
    }

    public void setCategory(String category) {
        this.category = category;
    }

    public String getProcessDefinitionId() {
        return processDefinitionId;
    }

    public void setProcessDefinitionId(String processDefinitionId) {
        this.processDefinitionId = processDefinitionId;
    }

    public String getProcessXml() {
        return processXml;
    }

    public void setProcessXml(String processXml) {
        this.processXml = processXml;
    }

    public String getFormConfig() {
        return formConfig;
    }

    public void setFormConfig(String formConfig) {
        this.formConfig = formConfig;
    }

    public String getProcessConfig() {
        return processConfig;
    }

    public void setProcessConfig(String processConfig) {
        this.processConfig = processConfig;
    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getCreatorName() {
        return creatorName;
    }

    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Boolean getIsNewVersion() {
        return isNewVersion;
    }

    public void setIsNewVersion(Boolean isNewVersion) {
        this.isNewVersion = isNewVersion;
    }
}